home *** CD-ROM | disk | FTP | other *** search
- /*
- * Print one or more files on a remote line printer.
- *
- * lpr [ -h host ] [ -p printer ] [ -P printer ] [ -t ] [ file ... ]
- *
- * If no file arguments are specified, the standard input is read.
- * If any file argument is "-" it also implies the standard input.
- */
-
- #include "defs.h"
-
- char *pname;
-
- main(argc, argv)
- int argc;
- char *argv[];
- {
- FILE *fp, *fopen();
- char *s, *filename;
- int i;
-
- pname = argv[0];
- while (--argc > 0 && (*++argv)[0] == '-')
- for (s = argv[0]+1; *s != '\0'; s++)
- switch (*s) {
-
- case 'P': /* specify printer name */
- case 'p': /* specify printer name */
- if (--argc <= 0)
- err_quit("-%c requires another argument", *s);
- strcpy(printername, *++argv);
- break;
-
- case 'd': /* debug */
- debugflag = 1;
- break;
-
- case 'h': /* specify host name */
- if (--argc <= 0)
- err_quit("-h requires another argument");
- strcpy(hostname, *++argv);
- break;
-
- default:
- fprintf(stderr, "%s: illegal option %c\n",
- pname, *s);
- break;
- }
-
- i = 0;
- send_start();
- do {
- if (argc > 0) {
- filename = argv[i];
- if (strcmp(filename, "-") == 0) {
- fp = stdin;
- filename = "-stdin";
- } else if ( (fp = fopen(argv[i], "r")) == NULL) {
- fprintf(stderr, "%s: can't open %s\n",
- pname, argv[i]);
- continue;
- }
- } else {
- fp = stdin;
- filename = "-stdin";
- }
-
- send_file(filename, fp);
-
- fclose(fp);
-
- } while (++i < argc);
- send_done();
-
- exit(0);
- }
-